package org.ddd.book.domain.book.entity;

import lombok.Data;
import org.ddd.book.domain.IBaseEntity;
import org.ddd.book.domain.book.repository.IBookRepository;
import org.ddd.book.domain.book.vo.AuthorVO;
import org.ddd.book.domain.book.vo.BookContentVO;
import org.ddd.book.domain.book.vo.PublisherVO;
import org.ddd.book.domain.factoty.RepositoryFactory;

import java.util.Date;
import java.util.List;

/**
 * 书籍实体
 */
@Data
public class BookEntity implements IBaseEntity {
    // 书籍ID（编号）
    private Long bookId;
    // 书籍名称
    private String bookName;
    // 作者
    private AuthorVO author;
    // 出版社
    private PublisherVO publisher;
    // 出版时间
    private Date publishDate;
    // 售价
    private Long price;
    // 封面
    private String headImg;
    // 内容
    private List<BookContentVO> bookContents;

    // 持久化
    public void save() {
        RepositoryFactory.get(IBookRepository.class).save(this);
    }

    // 上架
    public void down() {
    }

    // 下架
    public void up() {
    }

    // 借出
    public void lend() {
    }

    // 归还
    public void returnBack() {
    }
}
